function jsonParse(json: string): any {
  return eval('(' + json + ')')
}

// var i = 0
// function jsonParse(json: string): any {
//   console.log(json[i]);
  
//   if (json[i] === '{') {
//     return parseObject(json)
//   } else if (json[i] === '[') {
//     return parseArray(json)
//   } else if (json[i] === 'n') {
//     return parseNull(json)
//   } else if (json[i] === 't') {
//     return parseTrue(json)
//   } else if (json[i] === 'f') {
//     return parseFalse(json)
//   } else if (json[i] === '"') {
//     return parseString(json)
//   } else {
//     return parseNumber(json)
//   }
// }

// function parseString(json: string): string {
//   let result = ''
//   i++
//   while(json[i] != '"') {
//     result += json[i]
//     i++
//   }
//   i++
//   return result
// }

// function parseNumber(json: string) {
//   let numStr = ''
//   while (isNumberChar(json[i])) {
//     numStr += json[i]
//     i++
//   }
//   return parseFloat(numStr)
// }

// function isNumberChar(x: any) {
//   const chars = {
//     '-': true,
//     '+': true,
//     '*': true,
//     '/': true,
//     '.': true
//   }
//   if (chars[x]) {
//     return true
//   }
//   if (x >= '0' && x <= '9') {
//     return true
//   }
//   return false
// }

// function parseFalse(json: string) {
//   let content = json.substr(i, 5)
//   if (content === 'false') {
//     i += 5
//     return false
//   }
// }

// function parseTrue(json: string) {
//   let content = json.substr(i, 4)
//   if (content === 'true') {
//     i += 4
//     return true
//   }
// }

// function parseNull(json: string) {
//   let content = json.substr(i, 4)
//   if (content === 'null') {
//     i += 4
//     return null
//   } 
// }

// function parseArray(json: string) {
//   i++
//   let result = []
//   while(json[i] !== ']') {
//     result.push(jsonParse(json))
//     if (json[i] === ',') {
//       i++
//     }
//   }
//   i++
//   return result
// }

// function parseObject(json: string) {
//   i++
//   let result = {}
//   while(json[i] !== '}') {
//     const key = parseString(json)
//     i++
//     const value = jsonParse(json)
//     result[key] = value
//     if (json[i] === ',') {
//       i++
//     }
//   }
//   i++
//   return result
// }

module.exports = jsonParse

// console.log(jsonParse('"cy"'));
// console.log(jsonParse('["cy", 18, true, {"single": "dog"}]'));
// console.log(jsonParse('{"name": "cy"}'));
// console.log(jsonParse('{"list":[{"single": "dog"},{"single": "dog"}]}'));
